package lucava.metamodel.java;

/**
 * Interface décrivant le comportement d'un élément ayant une visibilité.
 */
public interface IVisibleEntity {

	/**
	 * Retourne la visibilité de l'élément.
	 */
	public Visibility getVisibility();

	/**
	 * Assigne la visibilité 'private' à l'élément.
	 */
	public void setPrivate();

	/**
	 * Assigne la valeur 'private' à l'élément.
	 */
	public void setProtected();

	/**
	 * Assigne la valeur 'private' à l'élément.
	 */
	public void setPublic();

	/**
	 * Indique si la visibilité de l'élément est 'private'.
	 */
	public boolean isPrivate();

	/**
	 * Indique si la visibilité de l'élément est 'protected'.
	 */
	public boolean isProtected();

	/**
	 * Indique si la visibilité de l'élément est 'public'.
	 */
	public boolean isPublic();

}
